# -*- coding: utf-8 -*-
import os
import logging

# 初始化日志系统。
# 会把日志保存到logs目录下的某个文件中，日志文件内的级别是DEBUG，而流形式（屏幕显示）的级别是INFO。
# 这样设计，避免信息太多影响观察，但是若要深入观察可以看日志文件。
# 定义logger
def init_log_config(log_file):
    logger = logging.getLogger('scujcc')
    if not logger.hasHandlers():
        # 默认记录DEBUG级别以上信息,较为详细
        logger.setLevel(logging.DEBUG)
        formatter = logging.Formatter(
            "%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
        log_path = os.path.join(os.getcwd(), 'logs')
        if not os.path.exists(log_path):
            os.makedirs(log_path)
        log_name = os.path.join(log_path, log_file)
        fh = logging.FileHandler(log_name, mode='w', encoding='utf8')
        fh.setFormatter(formatter)

        sh = logging.StreamHandler()
        # 在控制台只记录INFO以上的信息,减少输出内容
        # sh.setLevel(logging.INFO)
        sh.setFormatter(formatter)
        logger.addHandler(sh)
        logger.addHandler(fh)
    return logger